void main() {
  var controller = new GenericController<Foo>();
  controller.processRequest();
  RequestHandler cc;
  cc.tellAboutHimself();
}

class GenericController<T extends RequestHandler> {
  T processRequest() {
    //T t = new T();
    T t;
    print("............");
    return t;
  }
}

class Foo extends RequestHandler {
  void tellAboutHimself() {
    print("Hello, I am 'Foo'");
  }
}

abstract class RequestHandler {
  void tellAboutHimself();
}
